Presenting messages associated with locations

ABSTRACT

A user may express an interest in a set of individuals represented in a set of individual stores (e.g., friends in a social network and colleagues in an academic directory). Such individuals may send to the individual stores messages that are associated with a location, and the user may request, from respective individual stores, a presentation of the locations. According to the techniques presented herein, the messages from the individual stores may be aggregated, and the locations associated with the aggregated messages may be presented in a map, thereby presenting to the user the locations of the messages of the individuals irrespective of from which individual store each message was received. Additionally, the map may present the messages to the user, and upon receiving form the user a reply to a message, may send the message to the individual store from which the message was received.

BACKGROUND

Within the field of computing, many scenarios involve a user who isassociated with a set of individuals represented in an individual store,such as acquaintances with whom the user has established a relationshipin a social, academic, or professional network and individualsassociated with an organization including the user and representedwithin an organization contact store. In such scenarios, respectiveindividuals may author and send the user (specifically or as part of agroup including the user) one or more messages. Moreover, such messagesmay be associated with a location, such as a location of the individualupon sending the message, a location that the individual has visited inthe past or intends to visit in the future, or a location associatedwith the content of the message authored by the individual.

The user may present to a device a request to view the messagespresented by such individuals within an individual store. For example,in a social network, the user may request to view the messages generatedby the individuals of the social network with whom the individual has arelationship. The device may therefore contact an individual store,receive the messages sent by such individuals, and present the messagesto the user. Moreover, the device may indicate to the user the locationof the message (e.g., presenting a text identifier, picture, or map ofthe location).

SUMMARY

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key factors oressential features of the claimed subject matter, nor is it intended tobe used to limit the scope of the claimed subject matter.

A user may have relationships with or interest in individualsrepresented in several individual stores. For example, the user may bepart of one or more organizations respectively featuring an organizationdirectory including the individuals of the organization; a professionalnetworking service comprising a set of individuals having professionalrelationships with the user; an academic networking service comprising aset of individuals having academic relationships with the user; and asocial networking service comprising a set of individuals having socialrelationships with the user. Individuals represented within thesevarious individual stores may write messages to the user that areassociated with a location (e.g., a location where the individual islocated while writing the message; a location mentioned by theindividual in the message; or a location that the individual has visitedin the past or intends to visit in the future). However, in order toview all of these messages, the user may have to visit each individualstore and request the messages from the individuals represented in theindividual store.

Presented herein are techniques for improving the experience of a userwhile viewing a set of messages posted by individuals on two or moreindividual stores. In accordance with these techniques, a deviceoperated by the user may request and receive the messages from all ofthe individual stores, and may aggregate the messages for presentationto the user. The device may then identify a location associated witheach message, and present the messages to the user in the form of a mapindicating the locations associated with the messages. Moreover, the mapmay be restricted to messages associated with a location within avicinity of the user location of the user, and/or to messages postedwithin a range of a particular date. Many variations in the generationof the map and presentation to the user may be devised by those havingordinary skill in the art while implementing the techniques presentedherein.

To the accomplishment of the foregoing and related ends, the followingdescription and annexed drawings set forth certain illustrative aspectsand implementations. These are indicative of but a few of the variousways in which one or more aspects may be employed. Other aspects,advantages, and novel features of the disclosure will become apparentfrom the following detailed description when considered in conjunctionwith the annexed drawings.

DESCRIPTION OF THE DRAWINGS

FIG. 1 presents an illustration of an exemplary scenario featuring apresentation to a user comprising messages associated with locations andwritten by individuals and submitted to two or more individual stores.

FIG. 2 presents an illustration of an exemplary scenario featuring apresentation to a user comprising messages associated with locationswritten by individuals and submitted to two or more individual stores inaccordance with the techniques presented herein.

FIG. 3 is a flow chart illustrating a first exemplary method ofpresenting to a user messages written by individuals and associated withlocations.

FIG. 4 is a flow chart illustrating a second exemplary method ofpresenting to a user messages written by individuals and associated withlocations.

FIG. 5 is an illustration of an exemplary computer-readable mediumcomprising processor-executable instructions configured to embody one ormore of the provisions set forth herein.

FIG. 6 is an illustration of an exemplary scenario featuring ahistorical presentation of messages within a range of a selected timepoint.

FIG. 7 is an illustration of an exemplary scenario featuring a userissuing a request for a presentation of a map of locations identified inmessages written by one or more individuals and received from one ormore individual stores.

FIG. 8 illustrates an exemplary computing environment wherein one ormore of the provisions set forth herein may be implemented.

DETAILED DESCRIPTION

The claimed subject matter is now described with reference to thedrawings, wherein like reference numerals are used to refer to likeelements throughout. In the following description, for purposes ofexplanation, numerous specific details are set forth in order to providea thorough understanding of the claimed subject matter. It may beevident, however, that the claimed subject matter may be practicedwithout these specific details. In other instances, structures anddevices are shown in block diagram form in order to facilitatedescribing the claimed subject matter.

Within the field of computing, many scenarios involve a user who wishesto receive a set of messages from a specific set of individuals who arerepresented in an individual store. As a first example, the individualstore may comprise a social network; the individuals may comprise familymembers, friends, and acquaintances with whom the individual hasestablished a social relationship; and the messages may comprise publicor semi-public status messages. As a second example, the individualstore may comprise a professional or academic directory; the individualsmay comprise professional or academic colleagues with whom theindividual has interacted in a business or school; and the messages maycomprise private messages send to the user through the network messagingsystem. As a third example, the individual store may comprise a publicor semi-public status service; the individuals may comprise publicfigures (e.g., celebrities or cultural leaders) in whom the user hasexpressed an interest, e.g., by requesting to “follow” the statusmessages submitted by the individuals; and the messages may comprise thestatus updates presented by such individuals for consumption by the“followers” of the individual. Additionally, the user may wish to viewmessages submitted by individuals to a plurality of individual stores(e.g., a social network, a professional network, and a companydirectory).

In these and other scenarios, individuals may write messages (eitherimpersonal or specifically addressed to the individual) that theindividual store may deliver to the user. In particular, many of thesemessages may reference a location, such as the location of theindividual at the time of writing the message; a location that isreferenced within the content of the message; or a location that theindividual has visited in the past, or intends to visit in the future.Accordingly, the location associated with a message may be presented tothe user within the body of the message (e.g., “I visited the parktoday”); may be presented to the user with the message (e.g., “thefollowing message was sent by the individual from the park”); or may beextracted from the message and presented apart from the message (e.g.,“this individual has sent messages from or referenced the followinglocations: . . . ”). An individual store may also facilitate thepresentation of the location to the user; for example, if the individualstore may identify a location associated with a message in anunambiguous manner (e.g., a set of global positioning system (GPS)coordinates), the individual store may supplement the presentation ofthe message with additional information about the location, such as amap or aerial photograph of the location.

FIG. 1 presents an illustration of an exemplary scenario 10 featuring auser 12 who has expressed an interest in a set of individuals 14. Theseindividuals 14 may be represented in one or more individual stores 18;e.g., a first pair of individuals 14 may be represented in a firstindividual store 18 (such as friends having profiles in a socialnetwork), and a second pair of individuals 14 may be represented in asecond individual store 18 (such as professional or academic colleaguesof the user 12 represented in a professional or academic directory). Theindividuals 14 may submit messages 16 to the individual stores 18 thatmay be delivered to the user 12 (e.g., public messages such as weblogposts; semi-public messages such as status updates that the author haswritten for delivery to a set of users 12; or private messages directedto the user 12). The individual stores 18 may be configured to receivethe messages 16 from the individuals 14, may store the messages 16, and,upon request from the user 12, may generate a presentation 22 of themessages 16 for the user 12. For example, the user 12 may visit awebsite associated with the first individual store 18, may requestmessages 16 from the individuals 14 represented in the first individualstore 18, and may view a presentation 22 of the messages 16 presented bythe first individual store 18. Moreover, one or more messages 16 mayreference a location 20 in an area 24. For example, the first message 16was written by an individual 14 at a location 20 within the area 24; thethird message 16 includes content that specifically references alocation 20 within the area 24; and the fourth message 16 indicates alocation 20 within the area 24 that the individual 14 intends to visitin the future. Accordingly, the respective individuals stores 18 may, inseparate presentations 22, present to the user 12 the messages 16associated with various locations 20.

However, the exemplary scenario 10 of FIG. 1 presents somedisadvantages. For example, the presentations 22 are isolated to themessages 16 stored by a particular individual store 18, and in order toview the messages 16 of all individuals 14, the user 12 may have torequest, receive, and review separate presentations 22 generated by theseparate individual stores 18. There is no synergy or aggregation of themessages 16, even if messages 16 presented in different individualstores 18 reference the same location 20, or if the same individual 14presents the same message 16 referencing the same location 20 withinseparate individual stores 18. Additionally, the individual stores 18simply present the messages 16 associated with locations 20, but do notfacilitate the user 12 by providing any further information about thelocations 20, such as a map of the locations.

In view of these disadvantages, presented herein are exemplarytechniques for presenting messages 16 associated with locations 20 thatare written by individuals 14 and stored in two or more individualstores 18. In accordance with these techniques, instead of beingpresented in separate presentations 22 based on the individual store 20wherein each message is stored 16, the messages 16 presented by suchindividuals 14 may be aggregated into a joint presentation 22. Forexample, an embodiment of these techniques may be configured to contactseveral individual stores 20 to receive all of the messages 16 storedtherein, aggregate all of the messages 16, and generate the aggregatedpresentation 22 of the messages 16 for the user 12. Moreover, thelocations 20 associated with such messages 16 may be received andevaluated, and the aggregated presentation 22 may present all of thereferenced locations 20 as a map. The aggregated presentation 22 maytherefore enable the user 12 to view the entire set of locations 20referenced in messages 16 by individuals 14 (e.g., a map of an area 24illustrating the locations 20 that the individuals 14 have referenced,such as where such individuals 14 are located when authoring themessages 16 or where such individuals 14 intend or suggest to visit).

FIG. 2 presents an illustration of an exemplary scenario 30 featuring apresentation to a user 12 of locations 20 associated with messages 16written by individuals 14 in whom the user 12 has expressed an interest.In this exemplary scenario 30, the individuals 14 are represented in twoindividual stores 18, and the individuals 14 write messages 16 and sendsuch messages 16 to the individual stores 18. The user 12 may request toview such messages 16 in a presentation 32. However, in contrast withthe exemplary scenario 10 of FIG. 1, this exemplary scenario 30illustrates the presentation 32 according to the techniques presentedherein. For example, an embodiment of these techniques may receive themessages 16 sent to the individual stores 18, and when the user 12requests to view the messages 16, the embodiment may generate apresentation 32 including a map 34 that indicates the locations 20associated with the messages 16 submitted by such individuals 14 to bothindividual stores 18. The messages 16 may also be presented on the map34 (e.g., presenting an indicator of a location 20 on the map 34associated with a message 16, and also presenting the content of themessage 16 on the map 34 near the indicator). Alternatively, themessages 16 may not initially be presented, but may be revealed to theuser 12 upon selecting an indicator of a location 20 (e.g., theembodiment may present the set of messages 16 associated with theselected location 20). In this manner, the user 12 may receive anoverview of the locations 20 associated with the messages 16 from theindividuals 14, irrespective of which individual store 18 theindividuals 14 sent the messages 16.

FIG. 3 presents an illustration of a first embodiment of thesetechniques, presented as an exemplary method 40 of presenting, on adevice having a processor and operated by a user 12, messages associatedwith locations 20 and written by individuals 16 represented in at leasttwo individual stores 18. The exemplary method 40 may be implemented,e.g., as a set of instructions stored in a memory component of thedevice (e.g., a memory circuit, a platter of a hard disk drive, asolid-state storage device, or an optical or magnetic disc) that, whenexecuted on the processor of the device, cause the device to perform thetechniques presented herein. The exemplary method 40 begins at 42 andinvolves executing 44 the instructions on the processor. In particular,the instructions are configured to receive 46 from the at least twoindividual stores 18 messages 16 associated with a location 20 andwritten by at least one individual 14. The instructions are alsoconfigured to, upon receiving 48 from the user 12 a request to presentthe messages 16, generate 50 a map 34 indicating the locations 20associated with the messages 16, and present 52 the map 34 to the user12. In this manner, the exemplary method 40 achieves the presentation ofa map 34 aggregating the locations 20 associated with messages 16 to theuser 12 received from a plurality of individual stores 18, and so endsat 54.

FIG. 4 presents a second embodiment of these techniques, illustrated asan exemplary method 60 of presenting, on a device having a processor anda message store and operated by a user 12, messages 16 associated withlocations 20, where such messages 16 have been written by individuals 14represented in at least two individual stores 18. The exemplary method60 begins at 62 and involves sending 64 instructions to the device that,when executed on the processor of the device, cause the device toperform the techniques presented herein. In particular, the instructionsare configured to, from the at least two individual stores 18, receive66 at least one message 16 sent by an individual 14 and associated witha location 20. The instructions are also configured to aggregate 68 themessages 16 from the at least two individual stores 18 in the messagestore of the device. The instructions are also configured to, uponreceiving from the user 12 a request to present the messages 16, present70 to the user 12 a map 34 indicating the locations 20 associated withthe messages 16. In this manner, the exemplary method 60 achieves theconfiguration of the device to present to the user 14 a map 34aggregating the locations 20 references in the messages 16 of theindividuals 14, irrespective of the individual stores 18 to which theindividuals 14 sent the respective messages 16.

Still another embodiment involves a computer-readable medium comprisingprocessor-executable instructions configured to apply the techniquespresented herein. Such computer-readable media may include, e.g.,computer-readable storage media involving a tangible device, such as amemory semiconductor (e.g., a semiconductor utilizing static randomaccess memory (SRAM), dynamic random access memory (DRAM), and/orsynchronous dynamic random access memory (SDRAM) technologies), aplatter of a hard disk drive, a flash memory device, or a magnetic oroptical disc (such as a CD-R, DVD-R, or floppy disc), encoding a set ofcomputer-readable instructions that, when executed by a processor of adevice, cause the device to implement the techniques presented herein.Such computer-readable media may also include (as a class oftechnologies that are distinct from computer-readable storage media)various types of communications media, such as a signal that may bepropagated through various physical phenomena (e.g., an electromagneticsignal, a sound wave signal, or an optical signal) and in various wiredscenarios (e.g., via an Ethernet or fiber optic cable) and/or wirelessscenarios (e.g., a wireless local area network (WLAN) such as WiFi, apersonal area network (PAN) such as Bluetooth, or a cellular or radionetwork), and which encodes a set of computer-readable instructionsthat, when executed by a processor of a device, cause the device toimplement the techniques presented herein.

An exemplary computer-readable medium that may be devised in these waysis illustrated in FIG. 5, wherein the implementation 80 comprises acomputer-readable medium 82 (e.g., a CD-R, DVD-R, or a platter of a harddisk drive), on which is encoded computer-readable data 84. Thiscomputer-readable data 84 in turn comprises a set of computerinstructions 86 configured to operate according to the principles setforth herein. In one such embodiment, the processor-executableinstructions 86 may be configured to perform a method of presenting to auser messages written by individuals and associated with locations, suchas the exemplary method 40 of FIG. 3, or the exemplary method 60 of FIG.4. Some embodiments of this computer-readable medium may comprise anontransitory computer-readable storage medium (e.g., a hard disk drive,an optical disc, or a flash memory device) that is configured to storeprocessor-executable instructions configured in this manner. Many suchcomputer-readable media may be devised by those of ordinary skill in theart that are configured to operate in accordance with the techniquespresented herein.

The techniques discussed herein may be devised with variations in manyaspects, and some variations may present additional advantages and/orreduce disadvantages with respect to other variations of these and othertechniques. Moreover, some variations may be implemented in combination,and some combinations may feature additional advantages and/or reduceddisadvantages through synergistic cooperation. The variations may beincorporated in various embodiments (e.g., the exemplary method 40 ofFIG. 3 and the exemplary method 60 of FIG. 4) to confer individualand/or synergistic advantages upon such embodiments.

A first aspect that may vary among embodiments of these techniquesrelated to the scenarios wherein such techniques may be utilized. As afirst example, many types of individuals 14 may write and send messages16 to many types of individual stores 18, such as family members,friends or acquaintances having a profile in a social network;colleagues who are listed in a professional or academic directory; andpublic figures, such as celebrities or cultural leaders, who post publicmessages 16 to weblogs. As a second example of this first aspect, thesetechniques may be utilized to present many types of messages 16,including text messages, audio messages such as voice messages, andpicture or video messages (including pictures or video of a particularlocation 20), and various types of data files including a messagewritten by an individual 14 (e.g., an extensible markup language (XML)file including a list of locations 20 that the individual 14 has visitedor intends to visit). As a third example of this first aspect, locations20 may be associated with messages 16 in many ways, such as a location20 where a message 16 was written by the individual 14; a location 20referenced in the content of the message 16; or a location 20 associatedwith the message 16 (e.g., a report of a location 20 visited by theindividual 14 in the past, or a location 20 that the individual 14intends to visit in the future). Additionally, the location 20 may beassociated with the message 14 in various ways (e.g., an explicitreference to a location 20 by name, address, or latitude/longitudecoordinates, or an implicit reference to a location 20, such as acomment that the individual 14 is at home, where a home address of theindividual 14 may be retrieved). As a fourth example, many types of maps34 may be presented to the user 12, including road maps, topographicalmaps, stylized maps featuring stylized depictions of the locations 20,pictorial maps featuring photographic images of the locations 20. Suchmaps 34 may be two- or three-dimensional, and may be static, moving,and/or interactive. As a fifth example, the map 34 may be presented onmany types of devices operated by the user 12, such as a desktop orportable computer, a television, or a handheld device such as asmartphone or global positioning system (GPS) receiver. Those ofordinary skill in the art may devise many such scenarios wherein thetechniques presented herein may be utilized.

A second aspect that may vary among embodiments of these techniquesrelates to the manner of receiving messages 16 from the respectiveindividual stores 18. As a first example, an embodiment of thesetechniques may contact each individual store 18 to request and retrievethe messages 16 stored therein that are accessible to the user 12. Thisrequest may involve, e.g., sending a web request to a website, receivinga web page including a presentation 22 of the messages 16, and utilizingvarious techniques (e.g., “web scraping”) to extract the messages 16 andlocations 20 associated therewith. Alternatively, one or more individualstores 18 may present an individual store interface, such as a webservice, a database interface, or an application programming interface(API), through which the messages 16 may be received in an automatedmanner, and an embodiment may invoke the individual store interface torequest the messages 18. Alternatively, one or more individual stores 18may be configured to send messages 18 to a user 12 automatically uponreceiving the message 18 from an individual 14 (e.g., a “push”architecture). For example, a device operated by the user 12 may contactthe individual store 18 to provide an address (e.g., an internetprotocol (IP) address or an email address) where the individual store 18is to send messages 16, and may monitor the address to receive messages16 spontaneously sent by the individual store 18.

As a second example of this second aspect, an individual store 18 may beconfigured to present messages 16 publicly to any user 12, even unknownand/or anonymous users 12. Alternatively, an individual store 18 mayonly provide messages 16 to particular users 12, and, before sendingmessages 16 to any user 12, may endeavor to authenticate the user 12according to at least one credential (e.g., a login username andpassword, a security certificate, a cryptographic signature, or adetected biometric). Accordingly, an embodiment of these techniques maybe configured to, upon receiving a credential authenticating the user12, store the credential; and to, while requesting a message 16 from anindividual store 18, authenticate the user 12 with the individual store18 according to at least one credential.

As a third example of this second aspect, the user 12 may have aparticular user location, such as a location where the user 12 iscurrently located. The user location of the user 12 may be specified bythe user 12, or may be automatically detected and/or inferred (e.g., byinvoking a global positioning system (GPS) receiver interfacing with adevice implementing an embodiment of these techniques, or bytriangulating with nearly location sources, such as wireless networks orcellular towers having a known location). In such scenarios, theembodiment of these techniques may be configured to request messages 16associated with locations 20 within a range of the user location (e.g.,locations 20 in the vicinity of the user 12). If the user 12 is onlyinterested in messages 16 relating to nearly locations 20, thisembodiment may conserve the computing resources and improve theperformance of the device and/or the information stores 18 by onlyrequesting, receiving, and presenting the messages 16 within thevicinity of the user location that are of interest to the user 12.Moreover, the device may be generally configured to request messages 16from the individual store 18 at a message query frequency, but mayrequest messages 16 from an individual store 18 that are associated witha location 18 at a location message query frequency that is higher thanthe message query frequency (e.g., pinging or querying the individualstore 18 once every five minutes for updates to the messages 16, butalso pinging or querying the individual store 18 once every thirtyseconds for updates to messages 16 associated with locations 20). Thisvariation may be advantageous, e.g., for presenting messages 16associated with locations 20 with lower latency, since such messages 16may be more time-sensitive and/or ephemeral (e.g., messages 16indicating a current location of an individual 14) than other messages16.

As a fourth example of this second aspect, an embodiment of thesetechniques may request messages 16 from one or more individual stores 18upon receiving the request from the user 12 to present the messages 16(e.g., an “ad hoc” retrieval of messages 16). Alternatively, anembodiment may frequently and/or continuously retrieve and store themessages 16 (e.g., through either a “push” mechanism or a “pull”mechanism) at a first time point, even in the absence of such a request.A later time (a second time point after the first time point), theembodiment may receive such a request from the user 12, and may generatethe map 34 using the previously received and stored messages 16. Thisvariation may be advantageous, e.g., for presenting the messages 16 morerapidly than the alternative embodiment, which has to contact theindividual stores 18 and request and receive the messages 16. Moreover,frequently or continuously storing messages 16 may enable otherfeatures. For example, the request may, upon receiving a message 16,store a time point with the message 16 (e.g., the time when the message16 was written by an individual 18 and/or received from the individualstore 18). The request received from the user 12 may specify a selectedtime point, and an embodiment may retrieve from the message store andgenerate a map 34 from only the messages 16 having a time point within arange of the selected time point (e.g., within one hour of the selectedtime point). This variation may enable the user 12 to view a past orhistorical set of locations 20 visited by the individuals 14 (e.g.,“show a map 34 of locations 20 that my contacts within a social networkvisited yesterday”).

FIG. 6 presents an illustration of an exemplary scenario 90 featuring ahistorical presentation of messages 16 within a range of a selected timepoint. In this exemplary scenario 90, a device 94 comprising a processor96 and a message store 100 is configured to receive and store messages16 received from two individual stores 18, and a display component 104whereupon maps 34 may be displayed for the user 12. This device 94 alsoincludes an embodiment 98 of these techniques (e.g., a memory componentstoring instructions configured as illustrated in the exemplary scenario40 of FIG. 3). As further illustrated in this exemplary scenario 90, themessages 16 stored by the individual stores 18 are associated with adate 92, which is stored with the message 16 in the message store 100,and a request 102 submitted by the user 12 to receive messages 16specifies a selected date 92, such as the current date and time, a dateand time in the past, or a date and time in the future. Accordingly, theembodiment 98 may select from the message store 100 the messages 16having a date 92 within a range of the selected date 92, and maygenerate a map 34 illustrating the locations 20 associated with suchmessages 16. In this manner, the embodiment 98 achieves a date filteringof the messages 16 and the generation of a map 34 illustrating only thelocations 20 associated with such messages 16. Those of ordinary skillin the art may devise many ways of requesting and receiving messages 16in accordance with the techniques presented herein.

A third aspect that may vary among embodiments of these techniquesrelates to the generation of the map 34 presenting to the user 12 thelocations 20 associated with the messages 16. As a first example, if auser location of the user 12 may be identified (e.g., provided by aglobal positioning system (GPS) receiver communicating with a device 94including an embodiment 98 of these techniques), the map 34 may belocalized to the user location of the user 12, such as restricting themap 34 to a particular range within the vicinity of the user location.

As a second example of this third aspect, the map 34 may indicate, amongthe locations 20 depicted on the map 34, one or more popular locationsthat are frequently associated with messages 20 written by theindividuals 14. For example, an embodiment may identify, for respectivelocations 20, a message count of messages 16 that are associated withthe location 20, and may identify on the map 34 the locations 20 havinga high message count (e.g., by highlighting the indicators of suchlocations 20 or using a distinctive indicator therefor).

As a third example of this third aspect, the map 34 may use differentvisual indicators to indicate different properties of the locations 20depicted on the map 34. As one such example, respective individualstores 18 may be associated with a visual identifier distinguishing theindividual store 18 from other individual stores 18, and the map 34 maydepict the locations 20 with the distinctive visual identifier of theindividual store 18 from which the message 16 associated with thelocation 20 was received. Similarly distinguishing visual identifiersmay be used to identify, e.g., which individual 14 posted messages 16associated with the locations 20, or the types of locations 20 depictedon the map 34.

As a fourth example of this third aspect, various techniques may beutilized to filter the locations 20 presented on the map 34. Forexample, respective messages 16 may have at least one message property,such as a message type (e.g., a brief text message such as a statusposted in a social network, a narrative message such as an anecdote ordocument, an audio recording captured at a location 20, or a photo orvideo recording that depicts the location 20). The request 102 receivedfrom the user 12 may specify at least one selected message property, andthe map 34 may be generated from the messages 16 having the at least oneselected message property (e.g., only depicting locations 20 depicted inphoto messages 16).

As a fifth example of this third aspect, an embodiment of thesetechniques may be configured to update the map 34 with informationreceived after initially generating the map 34. For example, whilepresenting a map 34 to a user 12, an embodiment may receive from anindividual store 18 a new message having a location 20, and may updatethe map with the new message. This variation may be advantageous, e.g.,where a user 12 is referring to the map 34 for up-to-date informationabout the individuals 14, such as the current locations of theindividuals 14 in an area 24. Those of ordinary skill in the art maydevise many ways of presenting the map 34 while implementing thetechniques presented herein.

A fourth aspect that may vary among embodiments of these techniquesrelates to additional features that may be implemented in suchtechniques. As a first example, the map 34 may also present the messages16 associated with respective locations 20 to the user 12; e.g., uponreceiving from the user 12 a selection of a location 20, an embodimentof these techniques may present the messages 16 associated with theselected location 20. Alternatively or additionally, an embodiment maybe configured to, upon receiving a reply from a user 12 to a message 16associated with a location 20 presented on the map 34, send the reply toan individual store 18 (including the individual store 18 from which themessage 16 referenced by the reply was received).

As a second example of this fourth aspect, the presentation of a map 34restricted to a vicinity of a user location of a user 12 may includeoffers associated with businesses located in the vicinity of the userlocation. For example, an embodiment of these techniques may receive aset of offers from respective businesses having a location (e.g.,opportunistic discounts on goods or services), and if the user 12 viewsa map 34 of an area 24 including the location 20 of a business, theassociated offers may be presented on the map 34.

As a third example of this fourth aspect, the device 94 configured topresent maps 34 according to these techniques may also have one or morecapabilities. For example, the device 94 may comprise a mobile phonepresenting a voice capability, a mobile texting device with a softwareor hardware keyboard presenting a texting capability, or a camerapresenting an image sending capability. Accordingly, the embodiment ofthese techniques may be configured to, while presenting messages 16associated with locations 20 presented on the map 34, identify one ormore message options that are associated with respective messages 16,and may present the message options in relation to the messages 16 onthe map 34. For example, if a user 12 operating a text-capable device 94selects a location 20 identified in a text message from an individual14, the map 34 may include a message option to send a text message tothe individual 14. In this manner, the embodiment of these techniquesmay utilize the capabilities of the device in the presentation of themap 34 of the locations 20.

FIG. 7 presents an illustration of an exemplary scenario 110 featuring auser 12 issuing a request 102 for a presentation of a map 34 oflocations 20 identified in messages 16 written by one or moreindividuals 14 and received from one or more individual stores 18. Theuser 12 may issue the request 102 from a second device 112 having a setof capabilities 114 (e.g., a voice capability 114 indicating that thesecond device 112 may initiate and receive voice communication, and atext capability 114 indicating that the second device 112 may send andreceive text messages). Accordingly, an embodiment 98 of thesetechniques may, while generating the map 34 of the locations 20 and oneor more messages 16 associated with such locations 20, include one ormore message options 116 associated with the message 16, such as theoption of initiating a voice communication with the individual 14 whowrote the message 16, or sending a text message in reply to the message16. In this manner, the embodiment 98 may utilize the capabilities 114of the second device 112 while presenting the map 34 to the user 12.Those of ordinary skill in the art may devise many such additionalfeatures that may be included with the techniques presented herein.

Although the subject matter has been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the subject matter defined in the appended claims is notnecessarily limited to the specific features or acts described above.Rather, the specific features and acts described above are disclosed asexample forms of implementing the claims.

As used in this application, the terms “component,” “module,” “system”,“interface”, and the like are generally intended to refer to acomputer-related entity, either hardware, a combination of hardware andsoftware, software, or software in execution. For example, a componentmay be, but is not limited to being, a process running on a processor, aprocessor, an object, an executable, a thread of execution, a program,and/or a computer. By way of illustration, both an application runningon a controller and the controller can be a component. One or morecomponents may reside within a process and/or thread of execution and acomponent may be localized on one computer and/or distributed betweentwo or more computers.

Furthermore, the claimed subject matter may be implemented as a method,apparatus, or article of manufacture using standard programming and/orengineering techniques to produce software, firmware, hardware, or anycombination thereof to control a computer to implement the disclosedsubject matter. The term “article of manufacture” as used herein isintended to encompass a computer program accessible from anycomputer-readable device, carrier, or media. Of course, those skilled inthe art will recognize many modifications may be made to thisconfiguration without departing from the scope or spirit of the claimedsubject matter.

FIG. 8 and the following discussion provide a brief, general descriptionof a suitable computing environment to implement embodiments of one ormore of the provisions set forth herein. The operating environment ofFIG. 8 is only one example of a suitable operating environment and isnot intended to suggest any limitation as to the scope of use orfunctionality of the operating environment. Example computing devicesinclude, but are not limited to, personal computers, server computers,hand-held or laptop devices, mobile devices (such as mobile phones,Personal Digital Assistants (PDAs), media players, and the like),multiprocessor systems, consumer electronics, mini computers, mainframecomputers, distributed computing environments that include any of theabove systems or devices, and the like.

Although not required, embodiments are described in the general contextof “computer readable instructions” being executed by one or morecomputing devices. Computer readable instructions may be distributed viacomputer readable media (discussed below). Computer readableinstructions may be implemented as program modules, such as functions,objects, Application Programming Interfaces (APIs), data structures, andthe like, that perform particular tasks or implement particular abstractdata types. Typically, the functionality of the computer readableinstructions may be combined or distributed as desired in variousenvironments.

FIG. 8 illustrates an example of a system 120 comprising a computingdevice 122 configured to implement one or more embodiments providedherein. In one configuration, computing device 122 includes at least oneprocessing unit 126 and memory 128. Depending on the exact configurationand type of computing device, memory 128 may be volatile (such as RAM,for example), non-volatile (such as ROM, flash memory, etc., forexample) or some combination of the two. This configuration isillustrated in FIG. 8 by dashed line 124.

In other embodiments, device 122 may include additional features and/orfunctionality. For example, device 122 may also include additionalstorage (e.g., removable and/or non-removable) including, but notlimited to, magnetic storage, optical storage, and the like. Suchadditional storage is illustrated in FIG. 8 by storage 130. In oneembodiment, computer readable instructions to implement one or moreembodiments provided herein may be in storage 130. Storage 130 may alsostore other computer readable instructions to implement an operatingsystem, an application program, and the like. Computer readableinstructions may be loaded in memory 128 for execution by processingunit 126, for example.

The term “computer readable media” as used herein includes computerstorage media. Computer storage media includes volatile and nonvolatile,removable and non-removable media implemented in any method ortechnology for storage of information such as computer readableinstructions or other data. Memory 128 and storage 130 are examples ofcomputer storage media. Computer storage media includes, but is notlimited to, RAM, ROM, EEPROM, flash memory or other memory technology,CD-ROM, Digital Versatile Disks (DVDs) or other optical storage,magnetic cassettes, magnetic tape, magnetic disk storage or othermagnetic storage devices, or any other medium which can be used to storethe desired information and which can be accessed by device 122. Anysuch computer storage media may be part of device 122.

Device 122 may also include communication connection(s) 136 that allowsdevice 122 to communicate with other devices. Communicationconnection(s) 136 may include, but is not limited to, a modem, a NetworkInterface Card (NIC), an integrated network interface, a radio frequencytransmitter/receiver, an infrared port, a USB connection, or otherinterfaces for connecting computing device 122 to other computingdevices. Communication connection(s) 136 may include a wired connectionor a wireless connection. Communication connection(s) 136 may transmitand/or receive communication media.

The term “computer readable media” may include communication media.Communication media typically embodies computer readable instructions orother data in a “modulated data signal” such as a carrier wave or othertransport mechanism and includes any information delivery media. Theterm “modulated data signal” may include a signal that has one or moreof its characteristics set or changed in such a manner as to encodeinformation in the signal.

Device 122 may include input device(s) 134 such as keyboard, mouse, pen,voice input device, touch input device, infrared cameras, video inputdevices, and/or any other input device. Output device(s) 132 such as oneor more displays, speakers, printers, and/or any other output device mayalso be included in device 122. Input device(s) 134 and output device(s)132 may be connected to device 122 via a wired connection, wirelessconnection, or any combination thereof. In one embodiment, an inputdevice or an output device from another computing device may be used asinput device(s) 134 or output device(s) 132 for computing device 122.

Components of computing device 122 may be connected by variousinterconnects, such as a bus. Such interconnects may include aPeripheral Component Interconnect (PCI), such as PCI Express, aUniversal Serial Bus (USB), firewire (IEEE 1394), an optical busstructure, and the like. In another embodiment, components of computingdevice 122 may be interconnected by a network. For example, memory 128may be comprised of multiple physical memory units located in differentphysical locations interconnected by a network.

Those skilled in the art will realize that storage devices utilized tostore computer readable instructions may be distributed across anetwork. For example, a computing device 140 accessible via network 138may store computer readable instructions to implement one or moreembodiments provided herein. Computing device 122 may access computingdevice 140 and download a part or all of the computer readableinstructions for execution. Alternatively, computing device 122 maydownload pieces of the computer readable instructions, as needed, orsome instructions may be executed at computing device 122 and some atcomputing device 140.

Various operations of embodiments are provided herein. In oneembodiment, one or more of the operations described may constitutecomputer readable instructions stored on one or more computer readablemedia, which if executed by a computing device, will cause the computingdevice to perform the operations described. The order in which some orall of the operations are described should not be construed as to implythat these operations are necessarily order dependent. Alternativeordering will be appreciated by one skilled in the art having thebenefit of this description. Further, it will be understood that not alloperations are necessarily present in each embodiment provided herein.

Moreover, the word “exemplary” is used herein to mean serving as anexample, instance, or illustration. Any aspect or design describedherein as “exemplary” is not necessarily to be construed as advantageousover other aspects or designs. Rather, use of the word exemplary isintended to present concepts in a concrete fashion. As used in thisapplication, the term “or” is intended to mean an inclusive “or” ratherthan an exclusive “or”. That is, unless specified otherwise, or clearfrom context, “X employs A or B” is intended to mean any of the naturalinclusive permutations. That is, if X employs A; X employs B; or Xemploys both A and B, then “X employs A or B” is satisfied under any ofthe foregoing instances. In addition, the articles “a” and “an” as usedin this application and the appended claims may generally be construedto mean “one or more” unless specified otherwise or clear from contextto be directed to a singular form.

Also, although the disclosure has been shown and described with respectto one or more implementations, equivalent alterations and modificationswill occur to others skilled in the art based upon a reading andunderstanding of this specification and the annexed drawings. Thedisclosure includes all such modifications and alterations and islimited only by the scope of the following claims. In particular regardto the various functions performed by the above described components(e.g., elements, resources, etc.), the terms used to describe suchcomponents are intended to correspond, unless otherwise indicated, toany component which performs the specified function of the describedcomponent (e.g., that is functionally equivalent), even though notstructurally equivalent to the disclosed structure which performs thefunction in the herein illustrated exemplary implementations of thedisclosure. In addition, while a particular feature of the disclosuremay have been disclosed with respect to only one of severalimplementations, such feature may be combined with one or more otherfeatures of the other implementations as may be desired and advantageousfor any given or particular application. Furthermore, to the extent thatthe terms “includes”, “having”, “has”, “with”, or variants thereof areused in either the detailed description or the claims, such terms areintended to be inclusive in a manner similar to the term “comprising.”

What is claimed is:
 1. A method involving a first device having a processor and having access to at least one individual store, the method comprising: executing on the processor instructions configured to: receive from the at least one individual store at least one message respectively expressed by an individual through an individual device, and respective messages associated with a location of the individual device when the individual expressed the respective message; and upon receiving from a user a request to present the at least one message: generate a map indicating the location associated with the respective at least one message; and present the map to the user; upon receiving from the user a selection of a selected message presented on the map: identify an action involving at least one device capability of the individual device and invokable with the individual device through which the selected message was expressed by the individual, and present on the map an action option for the action; and upon receiving from the user a selection of the action option, invoke the action involving the individual device.
 2. The method of claim 1, receiving the at least one message from the at least one individual stores comprising: from respective individual stores, requesting from the individual store the at least one message accessible to the user.
 3. The method of claim 2: at least one individual store configured to, before sending messages to the user, authenticate the user according to at least one stored credential that is associated with the user; and the instructions configured to, upon receiving at least one submitted credential authenticating the user, store the at least one submitted credential as a stored credential associated with the user; and requesting the at least one message from an individual store comprising: authenticating the user with the individual store according to the at least one stored credential associated with the user.
 4. The method of claim 2: the user having a user location; and requesting the at least one message from an individual store comprising: requesting the at least one message having a location that is within a range of the user location.
 5. The method of claim 2: the first device configured to request the at least one message from at least one individual store at a message query frequency for presenting to the user; and requesting the messages from an individual store comprising: from respective individual stores, request from the individual store the at least one message accessible to the user and having a location at a location message query frequency that is higher than the message query frequency.
 6. The method of claim 2: at least one individual store comprising an individual store interface configured to send the at least one message to a user; and requesting the at least one message from an individual store comprising: for at least one individual store, invoking the individual store interface to request the at least one message.
 7. The method of claim 1: the first device comprising a message store configured to store messages; the instructions configured to, upon receiving a selected message at a first time point, store the selected message with the first time point in the message store; and generating the map comprising: upon receiving from the user the request to present the at least one message, the request received at a second time point after the first time point, retrieve the at least one message from the message store.
 8. The method of claim 7: the request specifying a selected time point; and retrieving the at least one message from the message store comprising: receiving from the message store the at least one message having a time point within a range of the selected time point.
 9. The method of claim 1: the user having a user location; and generating the map comprising: generating a map, localized within a range of the user location, indicating at least one location that is associated with at least one message.
 10. The method of claim 1: the instructions configured to identify, for respective locations, a message count of at least one message associated with the location; and generating the map comprising: identifying on the map at least one location having a message count of the at least one message associated with the location that is above a message count threshold.
 11. The method of claim 1: respective individual stores associated with a visual identifier distinguishing the individual store from other individual stores; and generating the map comprising: generate a map indicating, for respective messages, the location associated with the message and using the visual identifier of the individual store from which the message was received.
 12. The method of claim 1: respective messages having a least one message property; the request specifying at least one selected message property; and generating the map comprising: generating a map indicating the locations associated with at least one message having the at least one selected message property.
 13. The method of claim 1, the instructions configured to, upon receiving from an individual store a new message having a location while presenting the map to the user, update the map with the new message.
 14. The method of claim 1, the instructions configured to, upon receiving a reply from the user referencing a message from an individual, send the reply to an individual store.
 15. The method of claim 14, sending the reply comprising: sending the reply to the individual store from which the message referenced by the reply was received.
 16. The method of claim 1: the request specifying a selected location; and the instructions configured to present to the user the at least one message associated with the selected location.
 17. The method of claim 1: the user having a user location; the instructions comprising: receiving at least one offer having a location from at least one business; and generating the map comprising: generating a map indicating the locations associated with the at least one message and the offers having locations that are within a range of the user location.
 18. The method of claim 1, where the instructions are further configured to: upon receiving a request to identify at least one device capability of the first device, identify at least one capability of the first device; and upon receiving an invocation of an action by an individual device and involving at least one device capability of the first device, fulfill the invocation of the action using the at least one device capability of the first device.
 19. A method involving a first device having a processor and having access to at least two individual stores in a message store, the method comprising: sending to the first device instructions that, upon being executed on the processor, cause the first device to: from the at least two individual stores, receive at least one message respectively expressed by an individual through an individual device, and respectively associated with a location of the individual device when the individual expressed the respective message; aggregate the at least one message from the at least two individual stores in the message store; upon receiving from a user a request to present the at least one message, present to the user a map indicating the location associated with the respective at least one message; upon receiving from the user a selection of a selected message presented on the map: identify an action involving at least one device capability of the individual device and invokable with the individual device through which the selected message was expressed by the individual, and present on the map an action option for the action; and upon receiving from the user a selection of the action option, invoke the action involving the individual device.
 20. A nonvolatile computer-readable storage device storing instructions that, upon being executed on a processor of a first device of a user, cause the first device to present messages expressed by individuals respectively using an individual device, by: receiving, from at least one individual store, at least one message expressed by an individual, and respective messages associated with a location of the individual device upon the first device receiving the respective message expressed by the individual; presenting to the user a map identifying, for respective messages, the location of the individual device upon receiving the respective message expressed by the individual; upon receiving from the user a selection of a selected message presented on the map: identifying an action involving at least one device capability of the individual device and invokable with the individual device through which the selected message was expressed by the individual, and presenting on the map an action option for the action; and upon receiving from the user a selection of the action option, invoking the action involving the individual device. 